﻿package Personagens {
	
	import flash.display.MovieClip;
	import flash.display.Stage;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;
	import Level.Level;
	import Personagens.Soldado1;
	import Personagens.Soldado2;
	import Level.Level1;
	
	public class Exercitos extends MovieClip {
	
		var soldado1 : Soldado1;
		var soldado2 : Soldado2;
		public var AR_soldados1:Array = new Array;
		public var AR_soldados2:Array = new Array;
		var numb : uint;
		var delay : uint = 120;
		var delay2 : uint = 120;
		var solda : Soldado11 = new Soldado11;
		
		public static var AR_tiroD : Array = new Array;
		public static var AR_tiroE : Array = new Array;
		
		public function Exercitos() {
			Main.getStage().addEventListener(KeyboardEvent.KEY_DOWN, pressionar, false, 0, true);
			Main.getStage().addEventListener(KeyboardEvent.KEY_UP, soltar, false, 0, true);			
		}
		
		public function update () : void {
			delay ++;
			if (delay > 170){  delay = 170 } //limitador do contador delay
			delay2 ++;
			if (delay2 > 170){  delay2 = 170 } //limitador do contador delay2
			colidir();
		
		}
		//funçao pra colocar personagens no cenario
		private function pressionar (e:KeyboardEvent) : void {			
			switch (e.keyCode)
			{
				
				case Keyboard.O: //soldado1 atiram
					if ( AR_soldados1.length != 0){
						for (var s:int = 0; s < AR_soldados1.length; s++){
							AR_soldados1[s].atirar();
						}
					}				
					break;
				case Keyboard.P:  //soldado1 andam
					if ( AR_soldados1.length != 0){
						for (var b:int = 0; b < AR_soldados1.length; b++){							
							AR_soldados1[b].mover();
						}
					}
					break;
				case Keyboard.A:
					Level.Level.barra_HP1.width -= 5;
					break;
				case Keyboard.S:
					Level.Level.barra_HP2.width -= 5;
					break;
					
					
				case Keyboard.Z:
					if (delay > 160){
						delay = 160;
						soldado1 = new Soldado1 (1);	
						soldado1.x = 0;
						soldado1.y = 115;
						Level.Level.cenario.addChild(soldado1);
						AR_soldados1.push(soldado1);
					}
					break;
				/*case Keyboard.X:
					if (delay > 160){
						delay = 0;
						soldado12 = new Soldado2;
						Level.Level.cenario.addChild(soldado12);
						soldado12.x = 0;
						soldado12.y = 15 + Level.Level.cenario.height/3;
						AR_soldados1.push(soldado12);	
					}
					break;
				case Keyboard.C:
					if (delay > 160){
						delay = 0;
						soldado13 = new Soldado1;
						Level.Level.cenario.addChild(soldado13);
						soldado13.x = 0;
						soldado13.y = 15 + 2*Level.Level.cenario.height/3;
						AR_soldados1.push(soldado13);	
					}
					break;*/
				case Keyboard.NUMPAD_1:
					if (delay2 > 160){
						delay2 = 0;
						soldado2 = new Soldado2(2);
						Level.Level.cenario.addChild(soldado2);
						soldado2.x = Level.Level.cenario.width;
						soldado2.y = 15;
						soldado2.scaleX *= -1;
						Level.Level.cenario.addChild(soldado2);
						AR_soldados2.push(soldado2);
					}
					break;
				/*case Keyboard.NUMPAD_2:
					if (delay2 > 160){
						delay2 = 0;
						soldado22 = new Soldado2;
						Level.Level.cenario.addChild(soldado22);
						soldado22.x = Level.Level.cenario.width;
						soldado22.y = 15 + Level.Level.cenario.height/3;
						soldado22.scaleX *= -1;
						AR_soldados2.push(soldado22);	
					}
					break;
				case Keyboard.NUMPAD_3:
					if (delay2 > 160){
						delay2 = 0;
						soldado23 = new Soldado2;
						Level.Level.cenario.addChild(soldado23);
						soldado23.x = Level.Level.cenario.width;
						soldado23.y = 15 + 2*Level.Level.cenario.height/3;
						soldado23.scaleX *= -1;
						AR_soldados2.push(soldado23);	
					}
					break;*/
			}
		}
		
		private function soltar (e:KeyboardEvent) : void {
			
		}
		
		public function colidir () : void {
			for (var k:int = 0; k <AR_soldados1.length; k++){
				//AR_soldados1[k].x +=2;
				AR_soldados1[k].update();
				if (AR_soldados1[k].x >= 864 ){			
					Level.Level.cenario.removeChild(AR_soldados1[k]);
					AR_soldados1.splice(k,1);
				}
				for (var p:int = 0; p < AR_soldados2.length; p++){				
					if (AR_soldados1[k]!= null && AR_soldados2[p]!= null){
						if (AR_soldados1[k].hitTestObject(AR_soldados2[p]) ){
							Level.Level.cenario.removeChild(AR_soldados1[k]);
							AR_soldados1.splice(k,1);
							Level.Level.cenario.removeChild(AR_soldados2[p]);
							AR_soldados2.splice(p,1);
						}
					}
				}			
			}
			for (var m:int = 0; m < AR_soldados2.length; m++){	
				//AR_soldados2[m].x -=2;
				AR_soldados2[m].update();
				if (AR_soldados2[m].x <= 60){			
					Level.Level.cenario.removeChild(AR_soldados2[m]);
					AR_soldados2.splice(m,1);
				}
			}
			
			if (AR_tiroD.length != 0){
				for (var h:int = 0; h < AR_tiroD.length; h++) {
					AR_tiroD[h].update();
					if (AR_tiroD[h].x >= 924){
						Level.Level.cenario.removeChild(AR_tiroD[h]);
						AR_tiroD.splice(h,1);
					}
				}
			}
		}

	}	
}
